<?php
	class Ftp{
		
		var $ftp_server = NULL;
		var $authentication = NULL;
		
		//CONSTRUTOR
		function Ftp($f,$u,$p){
			$this->ftp_server = @ftp_connect($f) or die("Não foi possivel conectar ao servidor.");
			$this->login($u,$p);
			
		}
		//LOGA NO SERVIDOR
		function login($u,$p){
			$this->authentication = @ftp_login($this->ftp_server, $u, $p) or die("Usuário inválido.");
		}
		
		//DESLOGA
		function logout(){
			if(@ftp_close ($this->ftp_server))
				return true;
			return false;
		}
		
		//VERIFICA SE ESTA LOGADO COM O SERVIDOR
		function isLogado(){
			
			if(($this->ftp_server) && ($this->authentication))
				return true;
			
			return false;
		}
		
		//UPLOAD de arquivo OBS: passe o array $_FILE
		function upload($file,$s=0){
			if ($this->isLogado()) {
				if($s > $file['size'])
					 return false;
				
				if(@ftp_put($this->ftp_server, $this->pwd().'/'.$file['name'],$file['tmp_name'], FTP_BINARY))
					return true;
			}
			return false;
		}
		//UPLOAD COM SIZE
		
		//ATRIBUI PERMISSOES
		function chMod($file,$p){
			if(@ftp_chmod($this->ftp_server,$p,$file))
				return true;
			return false;
		}
		
		//LISTA DIRETORIO ATUAL
		function ls($s){
			if($this->isLogado()){
				if($s == 1)
					return ftp_rawlist($this->ftp_server,$d);
				else if($s == 2)
					return ftp_nlist($this->ftp_server,$d);
				
			}else
				return NULL;
		}
		
		//LISTA DIRETORIO QUE VOCE ESTA
		function pwd(){
			if($this->isLogado())
				return ftp_pwd($this->ftp_server);
			return NULL;
		}
		
		//CRIA DIRETORIO
		function mkDir($d){
			if($this->isLogado() && !file_exists($d)){
				if(@ftp_mkdir($this->ftp_server,$d))
					return true;
			}
			return false;
		}
		
		
		//ANDA PELOS DIRETORIOS
		function cd($cd){
			if($this->isLogado()){
				if(@ftp_chdir($this->ftp_server,$cd))
					return true;
			}
			return false;
		}
		
		//DELATA ARQUIVO
		function del($d){
			if($this->isLogado()){
				if(@ftp_delete($this->ftp_server,$d))
					return true;
			}
			return false;
		}
		
		function rmDir($v){
			if($this->cd($v)){
				$this->rmDirRecursivo($v);
				@ftp_rmdir($this->ftp_server,$v);
			}
		}
		
		//RMOVER DIR DENTRO DO DIR
		function rmDirRecursivo($v){
			if($this->isLogado()){
				if(($array = $this->ls(2)) != NULL);
					
					foreach($array as $v){
						
						if($v != '..' && $v != '.'){
							if($this->cd($v)){
									$this->rmDirRecursivo($v);
									@ftp_rmdir($this->ftp_server,$v);
							}else
								$this->del($v);
						}
							
					}
					$this->cd('..');
					
				}
			}
		
		//RENOMEIA ARQUIVOS
		function reName($o,$n){
			if(@ftp_rename($this->ftp_server,$o,$n))
				return true;
			return false;
		}
		
		function upToRoot(){
			if(@ftp_cdup($this->ftp_server))
				return true;
			return false;
		}
		
		
	}
		
?>